查看原文
其他

clickpaste包介绍

2017-07-16 大脑 R语言中文社区

作者:大脑

背景:四大风险咨询的小朋友


R的魅力十有八九是因为有千奇百怪的package.rvest, httr, rcurl, rselenium组成了处理各式各样web task的“特工队”;rcpp, rjava, reticulate使得R拥有写轮眼,能够克隆C++,java,python等其他编程语言的能力;mlr,caret提供了统计建模的统一接口,使得R繁杂的建模包能听懂“同一种语言”;......。


今天要说的clickpaste包则是使得R拥有”按键精灵”的能力,通过模拟鼠标和键盘来操作第三方应用程序。说起这个包的起源,也正是因为我碰到了一个场景需要操作第三方的程序界面,并做出成千上万次的重复动作。

 

1.clickpaste包简介:

包括一个类:click_paste,六个方法:get_point,single_click;double_click,right_click,paste,press。

 

library(clickpaste)

#创建一个不明确像素坐标的对象

point_1<-click_paste$new()

#创建一个包括像素坐标的对象

point_2<-click_paste$new(100,100)

 

#通过get_point方法获得鼠标处的坐标或刷新对象原有的坐标

point_1$get_point()

point_2$get_point()

point_1$point_x

[1] 853

point_1$point_y

[1] 180

point_2$point_x

[1] 853

point_2$point_y

[1] 180

 

#编辑还原point_1和point_2的坐标

point_1$point_x<-NULL

point_1$point_y<-NULL

point_2$point_x<-100

point_2$point_y<-100

 

#点击100,100的像素坐标,两种方法相同的效果

point_1$single_click(100,100)

point_2$single_click()

 

#右击100,100的像素坐标

point_1$right_click(100,100)

point_2$right_click()

 

#黏贴/输入文本,这个方法本来和像素坐标没关系,但是因为没时间,我就没有单独写一个函数point_1$paste("hello world")

point_1$paste("你好")

 

#模拟按键,这个方法也和像素坐标没关系

point_1$press("1") #按1

point_1$press("a") #按a

point_1$press("enter") #按回车

point_1$press("alter") #按alt

point_1$press("control") #按ctrl

point_1$press("backspace") #按backspace

#press目前支持的按键有1:9 a:zF1:F12 回车 backspace delete control alter shift escape

 

2.应用场景

每天开机从某听书APP搜索符合一定规定的音频批量下载;

录制一个脚本玩贪食蛇;

。。。

3.下载链接:

1.编译好的包:https://pan.baidu.com/s/1i5FZArb

2.https://github.com/brainrot/clickpaste

 

4.新特性(试验中)

4.1.新特性1:现在我们可以把多条命令连接在一起

4.2新特性2:增加了新的方法sleep和sys.sleep效果一样,不过可以被连接,当第三方程序需要有反应时间的时候可能有用

例子:

y<-click_paste$new(50,50)

y$single_click()$single_click(100,100)$right_click(200,200)$sleep(5)$double_click()$paste("chain")$press("f1")

4.3下载地址:

编译好的包

http://pan.baidu.com/s/1nvPuRAp

Github地址(我的c++写得太烂,请高手多帮助)

https://github.com/brainrot/clickpastec

温馨提示:点击阅读原文,即可进入Github查看相关最新资料!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存